package com.integral.service;

import java.util.Date;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.integral.dao.IUserDao;
import com.integral.entity.User;
import com.integral.entity.UserInfo;
import com.integral.vo.UserVo;

/**
 * @Description: 用户表Service类
 * @author zhaofan
 * @date 2018年05月08日 上午01:01:17
 */
@Service("userService")
public class UserService {
	
	/**
	 * 注入用户表Dao
	 */
	@Resource
	private IUserDao userDao;
	
	/**
	 * @Description: 新增用户表
	 * @param user 用户表
	 * @return 受影响行数
	 * @author zhaofan
	 * @date 2018年05月08日 上午01:01:17
	 */
	public int addUser(User user) {
		user.setCreateEmp("SYS");
		user.setCreateTime(new Date());
		user.setDeleteFlag(0);
		return userDao.addUser(user);
	}
	
	/**
	 * @Description: 修改用户表
	 * @param user 用户表
	 * @return 受影响行数
	 * @author zhaofan
	 * @date 2018年05月08日 上午01:01:17
	 */
	public int updateById(User user) {
		return userDao.updateById(user);
	}
	
	/**
	 * @Description: 删除用户表
	 * @param id 主键
	 * @return 受影响行数
	 * @author zhaofan
	 * @date 2018年05月08日 上午01:01:17
	 */
	public int deleteById(Long id) {
		return userDao.deleteById(id);
	}
	
	/**
	 * @Description: 根据ID查询用户表
	 * @param id 主键
	 * @return 用户表
	 * @author zhaofan
	 * @date 2018年05月08日 上午01:01:17
	 */
	public User findByCode(String userCode) {
		return userDao.findByCode(userCode);
	}
	
	/**
	 * 用户列表查询
	 * @param userVo
	 * @return
	 * @author zhaofan
	 * @date 2018年05月11日 上午02:14:36
	 */
	public List<UserVo> findUser(UserVo userVo){
		return userDao.findUser(userVo);
	}
	/**
	 * 获取总记录数
	 * @param userVo
	 * @return
	 */
	public Long findUserCount(UserVo userVo){
		return userDao.findUserCount(userVo);
	}
	
	/**
	 * 根据用户唯一标识查询用户
	 * @param userOpenid
	 * @return
	 */
	public UserVo findByUserOpenid(String userOpenid){
		return userDao.findByUserOpenid(userOpenid);
	}
	
	/**
	 * 根据用户唯一openid修改用户类型
	 * @param user
	 * @return
	 */
	public int updateByUserType(User user){
		return userDao.updateByUserType(user);
	}
	
	/**
	 * 根据帐号密码，查询登录用户
	 * @param userInfo
	 * @return
	 */
	public UserInfo findUserInfo(UserInfo userInfo){
		return userDao.findUserInfo(userInfo);
	}
	
	/**
	 * 根据用户编码修改用户手机号
	 * @param user
	 * @return
	 */
	public int updateByPhoneNum(User user){
		return userDao.updateByPhoneNum(user);
	}
}